Identifying high impact bugs within a software engineering environment is useful to help prioritize engineering resources and streamline the engineering process cycle. A typical software engineering environment usually includes both (i) an automation system and (ii) a bug tracking system.
An automation system usually has physical hardware resources such as servers, test networks, and databases, as well as software used to execute tests. An automation system automates testing of software products, captures test results, schedules tests, and may perform other known test functions.
A bug tracking system is a software tool that usually provides a front end to a database, often stored remotely on a server. Test engineers typically file database records, known as bugs, which can be tracked to prioritize and fix product issues. Prioritization has previously been managed manually via a software product team, for instance, based on the severity of the issue reported. This manual triage process has problems. Engineers are unable to identify bugs that have systemic affects (e.g., bugs that can lower the throughput of the engineering system) or that create a disproportionate number of software failures. Bugs that may occur for different independent software products and that cause widespread test failures for those software products have had low visibility.
Techniques related to identifying high impact bugs are discussed below.